//
//  MJStatuelistViewModel.swift
//  新浪微博
//
//  Created by MaJi on 16/4/12.
//  Copyright © 2016年 MaJi. All rights reserved.
//

import UIKit

class MJStatuelistViewModel: NSObject {
//控制器需要的数据都在这里取  网络请求 模型数据
    //    懒加载 模型数组
    lazy var statuses:[MJststusOriganalVIewModel] = [MJststusOriganalVIewModel]()
    func lodaHomeData(isPullUp:Bool,finished:(isSuccess:Bool) -> ()){
        //        判断用户是否登录 
        guard let access_token = MJUserAccountViewModel.sharedAccount.account?.access_token else{
//            print("用户暂未登录")
//            finished(isSuccess: false)
            return
        }
        //上拉加载更多数据 max_id
        //加载更多数据  执行上拉操作
        //不能够同时制定since_id 和 max_id  这两个字段互斥的 只能够传一个
        //            print(result)
        var max_id:Int64 = 0
        var since_id:Int64 = 0
        if isPullUp {
//            上拉刷新
            max_id = statuses.last?.status?.id ?? 0
        }else{
            since_id = statuses.first?.status?.id ?? 0
        }
        
        
        //        加载首页数据
        HMNetworkTools.sharedTools.loadHomeInfo(access_token,max_id: max_id,since_id: since_id) { (result, error) -> () in
            if error != nil{
                //                print("数据请求失败")
                finished(isSuccess: false)
                return
            }

            //            1.将result转为字典类型
            let dict = result as! [String:AnyObject]
            //       2.根据 statuses key 获取对应的字典类型的数组
            guard let dictArray = dict["statuses"] as? [[String:AnyObject]] else{
                finished(isSuccess: false)
                return
            }
//            let dictArray = dict["statuses"] as! [[String:AnyObject]]
            //            3.遍历字典数组,取出每一个字典,转模型
            //            可变数组 用来装模型
            var tempArray:[MJststusOriganalVIewModel] = [MJststusOriganalVIewModel]()
            for item in dictArray {
                let statueModel = MJStatues(dict: item)
                let statueOriganalModelView = MJststusOriganalVIewModel(status: statueModel)
                tempArray.append(statueOriganalModelView)
            }
            //            将数据就复制给模型数组 保存数据
//            self.statuses = tempArray
//            上拉加载更多数据
            if isPullUp {
                self.statuses = self.statuses + tempArray
            }else{
                self.statuses = tempArray + self.statuses
            }
            
            
//    // 刷新数据  注意:一定不要忘啦,要写在赋值之后才有数据
            finished(isSuccess: true)
        }
        
    }

}
